1. Field of the Invention
The invention relates to indexing mechanisms for database management systems. Particularly, the invention relates to updating indexes for database tables in a shared-nothing architecture in response to redistribution of data in the table.
2. Description of the Related Art
As consumers have become more demanding in requiring quick and efficient service from businesses, companies have been quick to find ways to stay ahead of the competition. Business intelligence applications and technologies are one method by which companies may make more informed business decisions and cater to consumer needs and expectations. Such applications are used to analyze performance, projects, and/or internal operations, as well as to extrapolate information from indicators in the external environment to forecast future needs.
As business intelligence applications require an accumulation of data over time, adequate storage capacity is paramount to proper application performance. Shared-nothing architecture is a popular structure for such systems because of its scalability. This architecture enables support for very large databases by dividing the database into partitions that can be stored and managed on separate servers. Elapsed time for queries may also be drastically reduced by enabling individual queries to be processed in parallel.
Storage and processing power may be easily added to or removed from an existing shared-nothing architecture to meet present or projected future needs. Where physical machines are added or removed, data ownership must be changed and existing data redistributed. Data redistribution may also be required where existing data is not evenly distributed across physical hardware components, or does not meet business requirements.
Each database partition has local indexes on the data it stores, resulting in increased performance for local data access. A redistribution of data in a database table requires that indexes associated with the data be updated to reflect the changes. Known index maintenance solutions pair the data update process with the index update process, resulting in various processing inefficiencies. Specifically, such solutions serially process index updates as data changes occur, thereby interrupting data processing pending completion of such index updates.
From the foregoing discussion, it should be apparent that a need exists for a system and method to streamline index updates in shared-nothing architecture. Beneficially, such a system and method would reduce inefficiencies and costs traditionally associated with updating indexes in response to data changes and redistribution in a database table. Such a system and method are disclosed and claimed herein.